package com.cnap.multiclouldmgmt.repository.master;

import com.cnap.multiclouldmgmt.model.scale.QueryScalingConfigParam;
import com.cnap.multiclouldmgmt.model.scale.db.ScalingConfigPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <类文件描述>
 *
 * @author xc
 **/
@Mapper
public interface ScalingConfigMapper {

    /**
     * 插入伸缩组信息
     *
     * @param po 伸缩组信息
     * @return 结果
     */
    int insertScalingConfig(@Param("scalingConfig") ScalingConfigPO po);

    /**
     * 根据id查询
     *
     * @param configId id
     * @return 结果
     */
    ScalingConfigPO selectConfigById(@Param("configId") String configId);

    /**
     * 参数查询
     *
     * @param param    参数
     * @param userName 用户名称
     * @return 结果
     */
    List<ScalingConfigPO> selectByParam(@Param("queryParam") QueryScalingConfigParam param,
                                        @Param("userName") String userName);

    /**
     * 根据id删除伸缩配置
     *
     * @param configId 配置id
     * @return 结果
     */
    int deleteConfigById(@Param("configId") String configId);

    /**
     * 查询包含该resourceId的伸缩配置
     *
     * @param resourceId resourceId
     * @return 结果
     */
    List<ScalingConfigPO> selectConfigWithResourceId(@Param("resourceId") String resourceId);
}
